// 文件配置记录
export interface FileConfigRecord {
  id?: string;
  name?: string;
  storage?: number;
  config?:
    | ConfigDbRecord
    | ConfigDiskRecord
    | ConfigFTPRecord
    | ConfigSFTPRecord
    | ConfigS3Record;
  createTime?: string;
  remark?: string;
}

// 把config字段拆开之后展示在表单中
export interface FileConfigFormData
  extends ConfigS3Record,
    ConfigDiskRecord,
    ConfigDbRecord,
    ConfigFTPRecord,
    ConfigSFTPRecord {
  id?: string;
  name?: string;
  storage?: number;
  createTime?: string;
  remark?: string;
  // endpoint?: string;
  // bucket?: string;
  // accessKey?: string;
  // accessSecret?: string;
  // basePath?: string;
  // domain?: string;
}

interface ConfigDbRecord {
  domain?: string;
}

interface ConfigDiskRecord {
  basePath?: string;
  domain?: string;
}

interface ConfigFTPRecord {
  basePath?: string;
  host?: string;
  port?: number;
  username?: string;
  password?: string;
  mode?: string;
  domain?: string;
}

interface ConfigSFTPRecord {
  basePath?: string;
  host?: string;
  port?: number;
  username?: string;
  password?: string;
  domain?: string;
}

interface ConfigS3Record {
  endpoint?: string;
  bucket?: string;
  accessKey?: string;
  accessSecret?: string;
  domain?: string;
}

// 分页查询的参数
export interface FileConfigParams extends Partial<FileConfigRecord> {
  pageNo: number;
  pageSize: number;
  // Partial携带具体查询条件
}

// 列表值
export interface FileConfigListRes {
  list: FileConfigRecord[];
  total: number;
}
